Many computing devices, including mobile computing devices, are capable of communicating to remote devices over a network like the Internet. In one example, a client-side computing device can allow a user to receive data from and provide data to a web-based application provided by a server. If the web-based application includes XHTML/XFORMS documents, data submissions are performed while an on-line connection is available. For example, posting of instance data using an XFORM from the computing device to the server requires the network connection and/or the server to be available at the time when the post operation is requested. If any part of the network is not available at the time of the request, the post operation will fail and the data may be lost. Examples of the network being unavailable include if a wireless network has no signal, a local area network is disconnected, the server is either busy or temporarily down, and the like.
When the computing device loses its communication with the server, the user cannot continue working with the web-based application until the server and/or the network resumes operation. Additionally, if the user selects an option such as a “next page” button and the network connection is off-line, the server will not be available to respond to the selected option and, thus, cannot identify the next page. An error may be issued and the user will not be able to navigate between web pages until the system becomes on-line.
In web applications, state information can be kept for example, either on the server side, encoded in a uniform resource locator (URL), or in a session cookie. However, for off-line applications, there is no servlet available to handle the parameters and state information from one form or document to the next.